Web-based applications are generally designed to broadly cover the needs of the application's customers. As such, an off-the-shelf application may not quite fit any one customer's needs. To address this, applications may provide various ways to modify or extend the application. For example, a customer may be enabled to modify the application's data model by specifying custom attributes and objects to tailor the application to their needs. Additionally, events may be used to asynchronously execute custom functions by the customer. For example, a customer can create a function and subscribe to events published by the application and the function may be called asynchronously. Likewise, a proxy layer can be used to call a custom function prior to calling the web-based application. Modifying the data model can only extend an application so far, and events are limited to asynchronous processing. Proxies also add significant complexity as many dozens of proxy applications must be separately managed and kept up to date.